// 泛型：可以使用泛型来创建可重用的组件，一个组件可以支持多种类型的数据
// 泛型 就是 动态类型， 不是写死的类型 

// export function add<U>(a: U): U {
// 	return a
// }


// add<number>(1231231)

// add<string>('123')

// add<boolean[]>([true, false])

// 泛型类
export class Person<U> {
	name: string
	age: U
	constructor(name: string, age: U) {
		this.name = name
		this.age = age
	}
}

const p1 = new Person('张三', 18)


const p2 = new Person<string>('李四', '20')
const p3 = new Person<string>('王五', "22")